package cn.iocoder.yudao.module.project.controller.admin.internalcoderecycle.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 内码作废信息新增/修改 Request VO")
@Data
public class InternalCodeRecycleSaveReqVO {

    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15911")
    private Long recycleId;

    @Schema(description = "内码编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9288")
    @NotEmpty(message = "内码编号不能为空")
    private String internalCodeId;

    @Schema(description = "内码名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @NotEmpty(message = "内码名称不能为空")
    private String name;

    @Schema(description = "出库单号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "出库单号不能为空")
    private String exCode;

    @Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "订单编号不能为空")
    private String orderCode;

    @Schema(description = "订单详情id", example = "17968")
    private String orderDetailId;

    @Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotEmpty(message = "型号不能为空")
    private String type;

    @Schema(description = "物料编号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "物料编号不能为空")
    private String materialCode;

    @Schema(description = "所有箱码,用英文逗号分隔", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "所有箱码,用英文逗号分隔不能为空")
    private String cartonCodes;

    @Schema(description = "批次号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "批次号不能为空")
    private String batchNumber;

    @Schema(description = "批次校验序号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "批次校验序号不能为空")
    private String batchCheckNumber;

    @Schema(description = "操作时间")
    private LocalDateTime operatingTime;

    @Schema(description = "备注", example = "你猜")
    private String remark;

    @Schema(description = "重量(g)")
    private Double weight;

    @Schema(description = "重量状态(0:正常:1过轻,2:过重)", example = "2")
    private Integer weightStatus;

    @Schema(description = "刚性")
    private String rigidity;

    @Schema(description = "刚性状态(0:正常:1异常)", example = "2")
    private Integer rigidityStatus;

    @Schema(description = "平衡")
    private String balance;

    @Schema(description = "平衡状态(0:正常:1异常)", example = "2")
    private Integer balanceStatus;

    @Schema(description = "操作员")
    private String operator;

}